<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <meta name="generator" content="VuePress 2.0.0-beta.63">
    <style>
      :root {
        --c-bg: #fff;
      }
      html.dark {
        --c-bg: #22272e;
      }
      html, body {
        background-color: var(--c-bg);
      }
    </style>
    <script>
      const userMode = localStorage.getItem('vuepress-color-scheme');
			const systemDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
			if (userMode === 'dark' || (userMode !== 'light' && systemDarkMode)) {
				document.documentElement.classList.toggle('dark', true);
			}
    </script>
    <title>自定义工程的开发 | 中福彩科技</title><meta name="description" content="中福彩科技-o2oa实施文档">
    <link rel="preload" href="/zfc-o2oa-docs/assets/style-3271ca3f.css" as="style"><link rel="stylesheet" href="/zfc-o2oa-docs/assets/style-3271ca3f.css">
    <link rel="modulepreload" href="/zfc-o2oa-docs/assets/app-27e16ec4.js"><link rel="modulepreload" href="/zfc-o2oa-docs/assets/index.html-942a7934.js"><link rel="modulepreload" href="/zfc-o2oa-docs/assets/index.html-90f6c9fe.js"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-48e9216c.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-1e0bfb72.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-b2cd3edc.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/style.html-220bf2fe.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/form.html-eef3e371.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/preStart.html-cb7e3687.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-ad18ad89.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-b9001a59.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-6eb9c525.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-1293460c.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/org.html-cef2c2e5.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/publish.html-e2d0f0d9.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/request.html-13ba3fcf.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/user.html-b40ba9f9.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-90c04b77.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/js.html-6b2ed55d.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/set.html-9ce4e195.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-a0e9d2f2.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-83cec2cf.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/qa.html-5c1252a8.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/data.html-98263d56.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/org.html-d86ab23b.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/start.html-a4250902.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/submit.html-c00dad72.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/data.html-b271f60c.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/form.html-4c6a77fb.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/javascript.html-c9ee3881.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/model.html-4e1924f6.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/org.html-e8757fbc.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/validate.html-e459f75d.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/404.html-60b35caa.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-286f46d5.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-d7ef2db8.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-24074b2b.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/style.html-555db135.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/form.html-b07573f3.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/preStart.html-c4b6d125.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-f5ed7e27.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-fdbe5f4d.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-cbd9594d.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-2c09ff35.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/org.html-a75eb308.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/publish.html-43332134.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/request.html-674c6e54.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/user.html-ac86e33f.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-6adca1c2.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/js.html-c0fcfcc3.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/set.html-9be3b481.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-c3cd25c0.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/index.html-47495594.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/qa.html-9cb585fe.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/data.html-c18bf61f.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/org.html-f05ab6eb.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/start.html-aec9bdc9.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/submit.html-f60f964b.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/data.html-e6e2ee08.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/form.html-1ca73c37.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/javascript.html-3250175b.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/model.html-c4ef4a24.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/org.html-1279949e.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/validate.html-654899aa.js" as="script"><link rel="prefetch" href="/zfc-o2oa-docs/assets/404.html-f4891ce4.js" as="script">
  </head>
  <body>
    <div id="app"><!--[--><div class="theme-container"><!--[--><header class="navbar"><div class="toggle-sidebar-button" title="toggle sidebar" aria-expanded="false" role="button" tabindex="0"><div class="icon" aria-hidden="true"><span></span><span></span><span></span></div></div><span><a href="/zfc-o2oa-docs/" class=""><img class="logo" src="/zfc-o2oa-docs/logo.png" alt="中福彩科技"><span class="site-name can-hide">中福彩科技</span></a></span><div class="navbar-items-wrapper" style=""><!--[--><!--]--><nav class="navbar-items can-hide"><!--[--><div class="navbar-item"><a href="/zfc-o2oa-docs/" class="" aria-label="介绍"><!--[--><!--]--> 介绍 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/zfc-o2oa-docs/start/" class="" aria-label="快速开始"><!--[--><!--]--> 快速开始 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/zfc-o2oa-docs/guide/" class="router-link-active" aria-label="文档"><!--[--><!--]--> 文档 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/zfc-o2oa-docs/version/" class="" aria-label="版本更新"><!--[--><!--]--> 版本更新 <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="相关链接"><span class="title">相关链接</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="相关链接"><span class="title">相关链接</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a class="external-link" href="https://www.o2oa.net/" rel="noopener noreferrer" target="_blank" aria-label="o2oa官网"><!--[--><!--]--> o2oa官网 <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="https://www.o2oa.net/handbook.html" rel="noopener noreferrer" target="_blank" aria-label="o2oa使用手册"><!--[--><!--]--> o2oa使用手册 <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="https://www.o2oa.net/api/" rel="noopener noreferrer" target="_blank" aria-label="O2OA API"><!--[--><!--]--> O2OA API <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="http://localhost/x_processplatform_assemble_surface/jest/index.html" rel="noopener noreferrer" target="_blank" aria-label="O2OA 接口文档"><!--[--><!--]--> O2OA 接口文档 <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="http://localhost/x_cgt_assemble_control/jest/index.html" rel="noopener noreferrer" target="_blank" aria-label="自定义工程接口文档"><!--[--><!--]--> 自定义工程接口文档 <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><!--]--></ul></div></div><!--]--></nav><!--[--><!--]--><button class="toggle-color-mode-button" title="toggle color mode"><svg style="" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6z" fill="currentColor"></path><path d="M5.394 6.813l1.414-1.415l3.506 3.506L8.9 10.318z" fill="currentColor"></path><path d="M2 15.005h5v2H2z" fill="currentColor"></path><path d="M5.394 25.197L8.9 21.691l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 25.005h2v5h-2z" fill="currentColor"></path><path d="M21.687 23.106l1.414-1.415l3.506 3.506l-1.414 1.414z" fill="currentColor"></path><path d="M25 15.005h5v2h-5z" fill="currentColor"></path><path d="M21.687 8.904l3.506-3.506l1.414 1.415l-3.506 3.505z" fill="currentColor"></path><path d="M15 2.005h2v5h-2z" fill="currentColor"></path></svg><svg style="display:none;" class="icon" focusable="false" viewBox="0 0 32 32"><path d="M13.502 5.414a15.075 15.075 0 0 0 11.594 18.194a11.113 11.113 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1.002 1.002 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.072 13.072 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3z" fill="currentColor"></path></svg></button><form class="search-box" role="search"><input type="search" autocomplete="off" spellcheck="false" value><!----></form></div></header><!--]--><div class="sidebar-mask"></div><!--[--><aside class="sidebar"><nav class="navbar-items"><!--[--><div class="navbar-item"><a href="/zfc-o2oa-docs/" class="" aria-label="介绍"><!--[--><!--]--> 介绍 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/zfc-o2oa-docs/start/" class="" aria-label="快速开始"><!--[--><!--]--> 快速开始 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/zfc-o2oa-docs/guide/" class="router-link-active" aria-label="文档"><!--[--><!--]--> 文档 <!--[--><!--]--></a></div><div class="navbar-item"><a href="/zfc-o2oa-docs/version/" class="" aria-label="版本更新"><!--[--><!--]--> 版本更新 <!--[--><!--]--></a></div><div class="navbar-item"><div class="navbar-dropdown-wrapper"><button class="navbar-dropdown-title" type="button" aria-label="相关链接"><span class="title">相关链接</span><span class="arrow down"></span></button><button class="navbar-dropdown-title-mobile" type="button" aria-label="相关链接"><span class="title">相关链接</span><span class="right arrow"></span></button><ul style="display:none;" class="navbar-dropdown"><!--[--><li class="navbar-dropdown-item"><a class="external-link" href="https://www.o2oa.net/" rel="noopener noreferrer" target="_blank" aria-label="o2oa官网"><!--[--><!--]--> o2oa官网 <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="https://www.o2oa.net/handbook.html" rel="noopener noreferrer" target="_blank" aria-label="o2oa使用手册"><!--[--><!--]--> o2oa使用手册 <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="https://www.o2oa.net/api/" rel="noopener noreferrer" target="_blank" aria-label="O2OA API"><!--[--><!--]--> O2OA API <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="http://localhost/x_processplatform_assemble_surface/jest/index.html" rel="noopener noreferrer" target="_blank" aria-label="O2OA 接口文档"><!--[--><!--]--> O2OA 接口文档 <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><li class="navbar-dropdown-item"><a class="external-link" href="http://localhost/x_cgt_assemble_control/jest/index.html" rel="noopener noreferrer" target="_blank" aria-label="自定义工程接口文档"><!--[--><!--]--> 自定义工程接口文档 <span><svg class="external-link-icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path><polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg><span class="external-link-icon-sr-only">open in new window</span></span><!--[--><!--]--></a></li><!--]--></ul></div></div><!--]--></nav><!--[--><!--]--><ul class="sidebar-items"><!--[--><li><p tabindex="0" class="sidebar-item sidebar-heading active">文档 <!----></p><ul style="" class="sidebar-item-children"><!--[--><li><p tabindex="0" class="sidebar-item">表单开发 <!----></p><ul style="" class="sidebar-item-children"><!--[--><li><a href="/zfc-o2oa-docs/guide/" class="router-link-active sidebar-item" aria-label="新建应用"><!--[--><!--]--> 新建应用 <!--[--><!--]--></a><!----></li><li><a href="/zfc-o2oa-docs/guide/form/form.html" class="sidebar-item" aria-label="简单表单"><!--[--><!--]--> 简单表单 <!--[--><!--]--></a><!----></li><li><a href="/zfc-o2oa-docs/guide/form/data.html" class="sidebar-item" aria-label="表单数据"><!--[--><!--]--> 表单数据 <!--[--><!--]--></a><!----></li><li><a href="/zfc-o2oa-docs/guide/form/model.html" class="sidebar-item" aria-label="弹出选择列表框"><!--[--><!--]--> 弹出选择列表框 <!--[--><!--]--></a><!----></li><li><a href="/zfc-o2oa-docs/guide/form/org.html" class="sidebar-item" aria-label="人员选择器"><!--[--><!--]--> 人员选择器 <!--[--><!--]--></a><!----></li><li><a href="/zfc-o2oa-docs/guide/form/validate.html" class="sidebar-item" aria-label="数据校验"><!--[--><!--]--> 数据校验 <!--[--><!--]--></a><!----></li><li><a href="/zfc-o2oa-docs/guide/form/javascript.html" class="sidebar-item" aria-label="公共脚本"><!--[--><!--]--> 公共脚本 <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="sidebar-item">流程开发 <!----></p><ul style="" class="sidebar-item-children"><!--[--><li><a href="/zfc-o2oa-docs/guide/process/start.html" class="sidebar-item" aria-label="新建一个流程"><!--[--><!--]--> 新建一个流程 <!--[--><!--]--></a><!----></li><li><a href="/zfc-o2oa-docs/guide/process/org.html" class="sidebar-item" aria-label="审批节点"><!--[--><!--]--> 审批节点 <!--[--><!--]--></a><!----></li><li><a href="/zfc-o2oa-docs/guide/process/data.html" class="sidebar-item" aria-label="获取表单数据"><!--[--><!--]--> 获取表单数据 <!--[--><!--]--></a><!----></li><li><a href="/zfc-o2oa-docs/guide/process/submit.html" class="sidebar-item" aria-label="流转前校验"><!--[--><!--]--> 流转前校验 <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><a href="/zfc-o2oa-docs/guide/dict/" class="sidebar-item" aria-label="数据配置"><!--[--><!--]--> 数据配置 <!--[--><!--]--></a><!----></li><li><p tabindex="0" class="sidebar-item">门户开发 <!----></p><ul style="" class="sidebar-item-children"><!--[--><li><a href="/zfc-o2oa-docs/guide/desktop/set.html" class="sidebar-item" aria-label="整体介绍"><!--[--><!--]--> 整体介绍 <!--[--><!--]--></a><!----></li><li><a href="/zfc-o2oa-docs/guide/desktop/" class="sidebar-item" aria-label="页面部件设计"><!--[--><!--]--> 页面部件设计 <!--[--><!--]--></a><!----></li><li><a href="/zfc-o2oa-docs/guide/desktop/js.html" class="sidebar-item" aria-label="门户脚本开发"><!--[--><!--]--> 门户脚本开发 <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><p tabindex="0" class="sidebar-item active">自定义开发 <!----></p><ul style="" class="sidebar-item-children"><!--[--><li><a aria-current="page" href="/zfc-o2oa-docs/guide/custom/" class="router-link-active router-link-exact-active router-link-active sidebar-item active" aria-label="自定义工程的开发"><!--[--><!--]--> 自定义工程的开发 <!--[--><!--]--></a><!----></li><li><a href="/zfc-o2oa-docs/guide/custom/user.html" class="sidebar-item" aria-label="当前登录用户信息"><!--[--><!--]--> 当前登录用户信息 <!--[--><!--]--></a><!----></li><li><a href="/zfc-o2oa-docs/guide/custom/org.html" class="sidebar-item" aria-label="人员选择器"><!--[--><!--]--> 人员选择器 <!--[--><!--]--></a><!----></li><li><a href="/zfc-o2oa-docs/guide/custom/request.html" class="sidebar-item" aria-label="数据请求"><!--[--><!--]--> 数据请求 <!--[--><!--]--></a><!----></li><li><a href="/zfc-o2oa-docs/guide/custom/publish.html" class="sidebar-item" aria-label="资源部署"><!--[--><!--]--> 资源部署 <!--[--><!--]--></a><!----></li><!--]--></ul></li><li><a href="/zfc-o2oa-docs/guide/other/" class="sidebar-item" aria-label="其他问题"><!--[--><!--]--> 其他问题 <!--[--><!--]--></a><!----></li><li><a href="/zfc-o2oa-docs/guide/other/qa.html" class="sidebar-item" aria-label="QA"><!--[--><!--]--> QA <!--[--><!--]--></a><!----></li><!--]--></ul></li><!--]--></ul><!--[--><!--]--></aside><!--]--><!--[--><main class="page"><!--[--><!--]--><div class="theme-default-content"><!--[--><!--]--><div><h1 id="自定义工程的开发" tabindex="-1"><a class="header-anchor" href="#自定义工程的开发" aria-hidden="true">#</a> 自定义工程的开发</h1><p>在具体开始自定义前端工程开发之前，需要先说明的是哪些情况适合自定义开发？目前知道的流程和流程中的表单是不建议使用自定义工程的，因为它内部的数据结构我们是不清楚的，每一个节点的数据组成也不清楚！后台管理类的适合自定义工程开发</p><p><strong>vue3自定义工程的开发</strong></p><p><strong>更多参考</strong><a href="https://www.o2oa.net/cms/tech/445.html" target="_blank">O2OA开发平台前端源码级二次开发（Vue3,React）</a></p><div class="language-text line-numbers-mode" data-ext="text"><pre class="language-text"><code>// 在source下新建
o2-cmpt create custom.workplace


// 在o2web/目录下运行gulp命令
gulp x_component_custom_workplace --ev dev
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p><strong>css</strong></p><p>自定义工程全局css写在<code>public/$main/default/style.css</code> 只对当前应用有效</p><p><strong>常见问题</strong></p><ol><li>启动项目报错</li></ol><div class="language-ssh line-numbers-mode" data-ext="ssh"><pre class="language-ssh"><code>vue-cli-service serve

ERRORValidationError: webpack Dev Server Invalid Options

options should NOT have additional properties

ValidationError: webpack Dev Server Invalid Options
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>修改<code>vue.config.js</code>如下</p><div class="language-javascript line-numbers-mode" data-ext="js"><pre class="language-javascript"><code><span class="token keyword">const</span> config <span class="token operator">=</span> <span class="token function">require</span><span class="token punctuation">(</span><span class="token string">&#39;@o2oa/vue-cli-plugin-o2component/config&#39;</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
module<span class="token punctuation">.</span>exports <span class="token operator">=</span> Object<span class="token punctuation">.</span><span class="token function">assign</span><span class="token punctuation">(</span>config<span class="token punctuation">,</span> <span class="token punctuation">{</span>
  <span class="token comment">//my config here,</span>
  <span class="token literal-property property">devServer</span><span class="token operator">:</span> <span class="token punctuation">{</span>
    <span class="token literal-property property">clientLogLevel</span><span class="token operator">:</span> <span class="token string">&#39;info&#39;</span>
  <span class="token punctuation">}</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre><div class="line-numbers" aria-hidden="true"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></div><!--[--><!--]--></div><footer class="page-meta"><!----><div class="meta-item last-updated"><span class="meta-item-label">Last Updated: </span><!----></div><div class="meta-item contributors"><span class="meta-item-label">Contributors: </span><span class="meta-item-info"><!--[--><!--[--><span class="contributor" title="email: 983171730@qq.com">xlei1123</span><!----><!--]--><!--]--></span></div></footer><nav class="page-nav"><p class="inner"><!----><span class="next"><a href="/zfc-o2oa-docs/guide/custom/user.html" class="" aria-label="当前登录用户信息"><!--[--><!--]--> 当前登录用户信息 <!--[--><!--]--></a></span></p></nav><!--[--><!--]--></main><!--]--></div><!----><!--]--></div>
    <script type="module" src="/zfc-o2oa-docs/assets/app-27e16ec4.js" defer></script>
  </body>
</html>
